//
//  ParametersADSR.h
//  CocoaSynth
//
//  Created by Thomas Dupont on 22/02/10.
//  Copyright 2010 Apple Inc. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "ParametersModule.h"

@class ModuleADSRViewController;

/*!
 @class			ParametersADSR
 @abstract		Controleur de la vue de param&eacute;trage de l'ADSR.
 */
@interface ParametersADSR : NSViewController<ParametersModule> {
	IBOutlet NSSlider* attackSlider;
	IBOutlet NSSlider* decaySlider;
	IBOutlet NSSlider* sustainSlider;
	IBOutlet NSSlider* releaseSlider;
	IBOutlet NSTextField* attackText;
	IBOutlet NSTextField* decayText;
	IBOutlet NSTextField* sustainText;
	IBOutlet NSTextField* releaseText;
	ModuleADSRViewController* module;
}

/*!
 @abstract		Le controleur du module ADSR associ&eacute; au controleur de param&eacute;trage.
 @discussion	Lorsque un changement est effectu&eacute; sur la vue de param&eacute;trage,
 l'information est remont&eacute;e au controleur du module.
 @param			aModule le controleur de module ADSR associ&eacute; au controleur de param&eacute;trage.
 */
@property (assign) ModuleADSRViewController* module;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur de l'attack de l'ADSR.
 @param			aSlider Le slider associ&eacute; &agrave; l'attack de l'ADSR.
 */
@property (assign) NSSlider* attackSlider;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur de decay de l'ADSR.
 @param			aSlider Le slider associ&eacute; au decay de l'ADSR.
 */
@property (assign) NSSlider* decaySlider;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur de sustain de l'ADSR.
 @param			aSlider Le slider associ&eacute; au sustain de l'ADSR.
 */
@property (assign) NSSlider* sustainSlider;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur de release de l'ADSR.
 @param			aSlider Le slider associ&eacute; au release de l'ADSR.
 */
@property (assign) NSSlider* releaseSlider;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de l'attack de l'ADSR choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de l'attack de l'ADSR choisie.
 */
@property (assign) NSTextField* attackText;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de decay de l'ADSR choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de decay de l'ADSR choisie.
 */
@property (assign) NSTextField* decayText;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de sustain de l'ADSR choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de sustain de l'ADSR choisie.
 */
@property (assign) NSTextField* sustainText;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de release de l'ADSR choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de release de l'ADSR choisie.
 */
@property (assign) NSTextField* releaseText;

- (IBAction)attackChange:(id)sender;
- (IBAction)decayChange:(id)sender;
- (IBAction)sustainChange:(id)sender;
- (IBAction)releaseChange:(id)sender;
- (void)load;

@end
